8.2 特殊メソッド
4.9 そのほかの型を表す概念の実装方法を示している
イテラブルなオブジェクトとして振る舞う
イテラブルとイテレータで実装
・イテラブル
__iter__()を実装したオブジェクト
__iter__()の戻り値は任意のイテレータ
「for文や内包表記で使える」
for文はオブジェクトの__iter__を呼び出し、返り値のイテレータを得ている
・イテレータ
__iter__()と__next__()を実装したオブジェクト
__iter__()の戻り値は自分自身(self) (以上、Kindle の位置No.3770-3773 より)
(感想:ここの話ってデザインパターン?)
コンテナオブジェクトとして振る舞う
特殊メソッドは数が多い 👉 3.3.7. コンテナをエミュレートするを案内
__getitem__・__setitem__
辞書をカスタマイズした例
__contains__(in演算子)
__iter__や__getitem__へのフォールバックも紹介